#include "mainwindow.h"
#define ELPP_QT_LOGGING 1  //增加此宏定义，以启动对QT类型的支持
#include "./LogTool/easylogging++.h"
#include <QFont>

INITIALIZE_EASYLOGGINGPP // 此宏用于初始化库，通常放在全局作用域

#include <configmanager.h>
#include <QApplication>
#include <QSplashScreen>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);


    a.setFont(QFont("SeiHei",9));
    // 基本的日志配置
    el::Configurations defaultConf;
    defaultConf.setToDefault(); // 恢复默认配置
    // 设置全局日志是否启用、输出到文件、输出到标准输出
    defaultConf.set(el::Level::Global, el::ConfigurationType::Enabled, "true");
    defaultConf.set(el::Level::Global, el::ConfigurationType::ToFile, "true");
    defaultConf.set(el::Level::Global, el::ConfigurationType::ToStandardOutput, "true");
    // 设置日志格式和文件名
    defaultConf.set(el::Level::Global, el::ConfigurationType::Format, "[%datetime{%Y-%M-%d %H:%m:%s}]|[%level]|[%msg]");
    defaultConf.set(el::Level::Global, el::ConfigurationType::Filename, "./myapp.log");

    // 将配置应用到所有记录器
    el::Loggers::reconfigureAllLoggers(defaultConf);

    // 一些有用的标志设置
    el::Loggers::addFlag(el::LoggingFlag::DisableApplicationAbortOnFatalLog); // 防止Fatal日志导致程序中止
    el::Loggers::addFlag(el::LoggingFlag::HierarchicalLogging); // 启用层次化日志级别

    QPixmap pix(":/image/send-loading.gif");
    QSplashScreen splash(pix);
    splash.show();
    a.processEvents();

    MainWindow w;
    w.show();
    splash.finish(&w);
    return a.exec();
}
